perm filename L2[F8,ALS] blob sn#321379 filedate 1977-12-14 generic text, type T, neo UTF8
     1		     *CHECKERS as of December 14 1977.	EQU's
     2		     * S2 section
     3		     *Resident package addresses
     4		     JOYT    EQU     H'0C00'
     5		     LINE    EQU     H'0FDF'
     6		     SHCB    EQU     H'0FE2'
     7		     INPF    EQU     H'0FE3'
     8		     WTLN    EQU     H'0FE5'
     9		     TXC     EQU     H'0FE8'
    10		     CMRG    EQU     H'0FEA'
    11		     DBNC    EQU     H'0FEB'
    12		     UPI     EQU     H'0FFA'
    13		     JOYI    EQU     H'21AD'
    14		     IJS     EQU     H'22DB'
    15		     SHL     EQU     H'27C6'
    16		     SHR     EQU     H'27D3'
    17		     PUSH    EQU     H'40A9'
    18		     POPS    EQU     H'40BC'
    19		     SPS     EQU     H'40D0'
    20		     WDG     EQU     H'4105'
    21		     WAUD    EQU     H'41C8'
    22		     WAU1    EQU     H'41CC'
    23		     CDS     EQU     H'41D5'
    24		     WMS     EQU     H'4205'
    25		     UDAT    EQU     H'424D'
    26		     TRAN    EQU     H'43CD'
    27		     FCS     EQU     H'43D6'
    28		     WAIT    EQU     H'4501'
    29		     TIR     EQU     H'45DB'
    30		     CLER    EQU     H'4762'
    31		     *Misc. constants
    32		     TCMD    EQU     H'44'
    33		     BCMD    EQU     H'6D'
    34		     TCOL    EQU     H'80'   TEXT COLOR
    35		     ULIN    EQU     H'F5'
    36		     COM     EQU     H'8F7'
    37		     *
    38		     *RAM assignments
    39		     BFLG    EQU     H'0C20'
    40		     BLNF    EQU     H'0C21'	    Blink flag
    41		     XBLN    EQU     H'0C22'	    X value to blink
    42		     YBLN    EQU     H'0C23'	    Y value to blink
    43		     BCNT    EQU     H'0C24'	    Counter used in OKMV
    44		     BKMV    EQU     H'0C25'	    Data to index book moves
    45		     HSAV    EQU     H'0C26'	    H save location
    46		     HSAL    EQU     H'0C27'	    HL save location
    47		     PLY0    EQU     H'0C28'	    Players choice of ply depth
    48		     COL0    EQU     H'0C29'	    0 if machine plays black
    49		     SELX    EQU     H'0C2A'	    Move count
    50		     AP20    EQU     H'0C2C'	    ACTM+PASM+9 at HL=20
    51		     XOLD    EQU     H'0C2D'	    X coord touch point (double jump)
    52		     YOLD    EQU     H'0C2E'	    Y coord touch point (double jump)
    53		     CFLG    EQU     H'0C2F'	    Compression flag for ply record
    54		     OBJ0    EQU     H'0C30'	    Board 1, thru H'0E0F'
    55		     TREE    EQU     H'0E10'	    Tree data, thru H'0EFF', Player's b
    56		     TRE2    EQU     H'0E20'	    Machine's first board here
    57		     TRE3    EQU     H'0E3E'	    Passed flag at level 30
    58		     TRE5    EQU     H'0E50'	    PLY 3 location
    59		     PLMD    EQU     H'0E5B'	    Used for temp store of player's mov
    60		     PLMV    EQU     H'0ED0'	    Overlay region used for player's mo
    61		     PLMF    EQU     H'0EE0'	       and move numbers
    62		     SCOR    EQU     H'0EF0'	    28 bytes for scores
    63		     XPOS    EQU     H'0F0C'	    XPOSITION(CURSOR)
    64		     YPOS    EQU     H'0F0F'	    YPOSITION(CURSOR)
    65		     OBJ1    EQU     H'0F10'	    Board 2, thru H'0FAF'
    66		     MOBS    EQU     H'0FB0'	     Mobility and DJ flags (14 bytes)
    67		     RGSV    EQU     H'0FC1'	    Register save start (int. update)
    68		     *
    69		     *Scratch pad assignments
    70		     TEMP   EQU     H'8'
    71		     J	    EQU     H'9'
    72		     HU     EQU     H'A'
    73		     HL     EQU     H'B'
    74		     PLOC   EQU     O'3'	    LISU value for ACTIVE and PASSIVE
    75		     KLOC   EQU     O'4'	    LISU value for KING's and special d
    76		     ELOC   EQU     O'5'	    LISU value for EMPTY's area
    77		     ISA    EQU     O'30'	    ISAR value for active area
    78		     ISP    EQU     O'34'	    ISAR value for passive
    79		     ISK    EQU     O'40'	    ISAR value for kings
    80		     ACTM   EQU     O'46'	    Location of Active material count
    81		     PASM   EQU     O'47'	    Location of Passive material count
    82		     ISE0   EQU     O'50'	    ISAR value for guard byte
    83		     ISE    EQU     O'51'	    ISAR value for empty (with offset)
    84		     *Mimimum ply depths
    85		     PLYT   EQU     H'E9'	    Playing depth for Tom (neg. of MOB
    86		     PLYD   EQU     H'E1'	    Playing depth for Dick
    87		     PLYH   EQU     H'D9'	    Playing depth for Harry
    88		     *SPECIAL CONSTANTS
    89		     MAT     EQU     0		     As used in EVAL
    90		     POT     EQU     6
    91		     X	     EQU     H'1'
    92		     Y	     EQU     H'2'
    93		     VX      EQU     H'3'
    94		     VY      EQU     H'4'
    95		     CHT     EQU     H'3'    CURSOR HEIGHT
    96		     YTST    EQU     H'9'
    97		     XZOP    EQU     H'34'   Line for restorre of X zoom
    98		     MAXY    EQU     H'4D'   MAX Y COORD (=H'4F'-CHT)
    99		     *Linkage locations
   100		     PMOV    EQU     H'1116'	     Player's move
   101		     DJMP    EQU     H'1229'	     Jump again entry
   102		     WMC     EQU     H'1249'	     Write message
   103		     BORD    EQU     H'132B'	     Normal redo of board
   104		     MWAD    EQU     H'1623'
   105		     ENIN    EQU     H'164E'
   106		     DAI     EQU     H'166B'
   107		     SCRD    EQU     H'167D'
   108		     SHOW    EQU     H'1707'	     Debugging aid to show board
   109		       ORG  H'1790' SELE JUMP
   110		     *-*-*-
   111 1790 28 17 07 SELE    PI      SHOW
   112 1793 28 1F 32	     PI      WAST	     Debugging show board
   113 1796 63	     SEL2    LISU    PLOC
   114 1797 68		     LISL    0
   115 1798 10		     LR      DC,H
   116 1799 7C		     LIS     H'C'	     To get MOVE byte
   117 179A 8E		     ADC
   118 179B 70		     CLR
   119 179C 88		     AM
   120 179D 50		     LR      0,A	     Save it temporarily
   121 179E 94 04	     BNZ     SEL3
   122 17A0 29 1A 93	     JMP     NEXT	     To get next MOVE byte
   123 17A3 70	     SEL3    CLR
   124 17A4 18		     COM		     -1 in A
   125 17A5 8E		     ADC		     Get back to move byte
   126 17A6 C0		     AS      0
   127 17A7 F0		     NS      0		     Remove right-most on-bit
   128 17A8 17		     ST			     Put remaining bits back (and index
   129 17A9 E0		     XS      0		     This gets the extracted bit
   130 17AA 56		     LR      6,A	     Save it in 6
   131 17AB 16		     LM			     Now get the byte designation
   132 17AC 55	     SEL4    LR      5,A
   133 17AD 12		     SR      1
   134 17AE 12		     SR      1
   135 17AF 21 03	     NI      H'3'	     Separate the byte indicator part
   136 17B1 54		     LR      4,A	     Save it in 4
   137 17B2 45		     LR      A,5
   138 17B3 21 13	     NI      H'13'	     Separate the JUMP bit and the dire
   139 17B5 55		     LR      5,A	     Save them in 5
   140 17B6 20 18    DELE    LI      ISA	     Process Active and Kings for sourc
   141 17B8 C4		     AS      4		     Add byte #
   142 17B9 0B		     LR      IS,A	     Get to initial byte
   143 17BA 4C		     LR      A,S
   144 17BB 53		     LR      3,A
   145 17BC E6		     XS      6		     Delete moving piece
   146 17BD 5C		     LR      S,A	     from byte
   147 17BE 64		     LISU    KLOC	     To get to corresponding KING byte
   148 17BF 4C		     LR      A,S
   149 17C0 F6		     NS      6		     Was the piece a king?
   150 17C1 84 04	     BZ      DEL2
   151 17C3 EC		     XS      S		     If it was delete king bit
   152 17C4 5C		     LR      S,A
   153 17C5 77		     LIS     H'7'	     Non-zero in 2 for king
   154 17C6 52	     DEL2    LR      2,A	     0 for man, 7 for king, (later 1 fo
   155 17C7 63		     LISU    PLOC	     Back to active section
   156		     *Now locate captured piece if jump or find destination in normal m
   157 17C8 46		     LR      A,6	     Recall MOVE bit
   158 17C9 14		     SR      4
   159 17CA 84 10	     BZ      INRH	     Bit was in right half of byte
   160 17CC 53	     INLH    LR      3,A	     Save partially shifted MOVE bit
   161 17CD 71		     LIS     H'1'	     Get direction
   162 17CE F5		     NS      5		     To test right-most bit
   163 17CF 84 04	     BZ      INL2	     RF or LB move where 4 shift is cor
   164 17D1 43		     LR      A,3
   165 17D2 12		     SR      1		     LF and LB require an additional sh
   166 17D3 53		     LR      3,A
   167 17D4 72	     INL2    LIS     H'2'	     Now test for fore or aft
   168 17D5 F5		     NS      5
   169 17D6 84 13	     BZ      BOTH	     Forward move, no byte shift needed
   170 17D8 4E		     LR      A,D	     Only to decrement ISAR
   171 17D9 90 10    INL3    BR      BOTH
   172		     *
   173 17DB 46	     INRH    LR      A,6	     Get MOVE bit again
   174 17DC 15		     SL      4		     Left shift if in right half
   175 17DD 53		     LR      3,A	     Save partially shifted MOVE bit
   176 17DE 71		     LIS     H'1'
   177 17DF F5		     NS      5		     Get direction
   178 17E0 94 04	     BNZ     INR2	     LF or LB where 4 shift is correct
   179 17E2 43		     LR      A,3
   180 17E3 13		     SL      1		     RF and RB require an additional sh
   181 17E4 53		     LR      3,A
   182 17E5 72	     INR2    LIS     H'2'	     Now test fore and aft
   183 17E6 F5		     NS      5
   184 17E7 94 02	     BNZ     BOTH
   185 17E9 4D		     LR      A,I	     Only to increment ISAR
   186 17EA 45	     BOTH    LR      A,5	     Now is this a jump or a normal mov
   187		     *ISAR still points to active region but may designate
   188		     *an empty square or the capture square
   189 17EB 14		     SR      4		     Set status for jump bit
   190 17EC 94 04	     BNZ     JUMP
   191 17EE 29 18 B9	     JMP     NORM	     It's a normal move
   192 17F1 0A	     JUMP    LR      A,IS
   193 17F2 24 04	     AI      H'4'	     To get to passive pieces
   194 17F4 0B		     LR      IS,A
   195 17F5 4C		     LR      A,S
   196 17F6 E3		     XS      3		     Remove captured piece
   197 17F7 5C		     LR      S,A
   198 17F8 0A		     LR      A,IS
   199 17F9 24 04	     AI      H'4'	     Corresponding king location
   200 17FB 0B		     LR      IS,A
   201 17FC 4C		     LR      A,S	     Get byte
   202 17FD F3		     NS      3		     Is the piece a king?
   203 17FE 84 07	     BZ      JUM1	     No
   204 1800 EC		     XS      S		     Yes, Remove it
   205 1801 5C		     LR      S,A
   206 1802 72		     LIS     H'2'
   207 1803 18		     COM		     Fast -3
   208 1804 90 03	     BR      JU11
   209 1806 71	     JUM1    LIS     H'1'
   210 1807 18		     COM		     Fast -2
   211 1808 50	     JU11    LR      0,A
   212 1809 20 27	     LI      PASM
   213 180B 0B		     LR      IS,A
   214 180C 4C		     LR      A,S
   215 180D C0		     AS      0
   216 180E 5C		     LR      S,A
   217 180F 20 18    JU12    LI      ISA	     Back to moved-from location
   218 1811 C4		     AS      4		     Byte number is in 4
   219 1812 0B		     LR      IS,A
   220 1813 72		     LIS     H'2'
   221 1814 F5		     NS      5		     Test for fore or aft
   222 1815 84 04	     BZ      JUMA	     Fore move
   223 1817 4E		     LR      A,D	     Decrement ISAR (destination always
   224 1818 90 02	     BR      JUMB
   225 181A 4D	     JUMA    LR      A,I	     Increment ISAR
   226 181B 0A	     JUMB    LR      A,IS	     Get the destination byte off-set
   227 181C 24 E8	     AI      H'E8'	     by subtracting O'30' from ISAR val
   228 181E 54		     LR      4,A	     needed if there is a continuation
   229 181F 71		     LIS     H'1'	     Get direction
   230 1820 F5		     NS      5		     Test for right or left
   231 1821 46		     LR      A,6	     Get original piece location
   232 1822 84 04	     BZ      JUM2	     0 for R move, ≠0 for L move
   233 1824 12		     SR      1		     Left moves involve a right shift o
   234 1825 90 02	     BR      JUM3
   235 1827 13	     JUM2    SL      1		     Right moves involve a left shift o
   236 1828 53	     JUM3    LR      3,A	     Save bit byte in 3, freeing 6 for
   237 1829 51		     LR      1,A	     As mask in FIND for continuation
   238 182A 4C		     LR      A,S
   239 182B E3		     XS      3		     Set piece down
   240 182C 5C		     LR      S,A
   241 182D 70		     CLR
   242 182E C2		     AS      2		     Was the piece a king?
   243 182F 84 05	     BZ      JUMC	     No, might be a promotion
   244 1831 70		     CLR
   245 1832 50		     LR      0,A	     Temporary record of promotion cred
   246 1833 90 1A	     BR     JUM6	     Already a king so no promotion
   247 1835 72	     JUMC    LIS     H'2'
   248 1836 F5		     NS      5		     Which side is active
   249 1837 0A		     LR      A,IS
   250 1838 84 09	     BZ      JUM4	     0 if forward
   251 183A 25 18	     CI      O'30'	     Is this byte 0?
   252 183C 94 27	     BNZ     JU71	     No, so no promotion
   253 183E 7F		     LIS     H'F'	     and the king row?
   254 183F 15		     SL      4
   255 1840 90 06	     BR      JUM5	     Promotion indicated, no double jum
   256 1842 25 1B    JUM4    CI      O'33'	     Is this byte 3?
   257 1844 94 1F	     BNZ     JU71	     No, so no promotion
   258 1846 7F		     LIS     H'F'	     and the king row?
   259 1847 F3	     JUM5    NS      3
   260 1848 84 1B	     BZ      JU71	     No
   261 184A 71		     LIS     H'1'	     1 for promotion
   262 184B 52		     LR      2,A	     It was 0
   263 184C 50		     LR      0,A	     Credit for promotion
   264 184D 56		     LR      6,A	     Used in FIND for no continuation
   265 184E 64	     JUM6    LISU    KLOC	     Get to King position
   266 184F 4C		     LR      A,S
   267 1850 C3		     AS      3		     Put down the king
   268 1851 5C		     LR      S,A
   269 1852 70		     CLR
   270 1853 E0		     XS      0		     Was there a promotion?
   271 1854 84 0F	     BZ     JU71	     No
   272 1856 64		     LISU    4
   273 1857 6E		     LISL    6
   274 1858 4C		     LR      A,S
   275 1859 1F		     INC		     Add for promotion
   276 185A 5C		     LR      S,A
   277 185B 90 05	     BR      JUM9	     Can be no continuation if promotio
   278 185D 70	     JUM7    CLR
   279 185E E0		     XS      0		     Should we check for a double jump?
   280 185F 84 04	     BZ     JU71	     Yes, a 0 means no promotion
   281 1861 29 18 E9 JUM9    JMP    FORE
   282		     * Set up conditions to try to find a continuation
   283 1864 4B	     JU71    LR      A,HL
   284 1865 14		     SR      4
   285 1866 25 0B	     CI      H'B'	     Is there room?  (COULD BE SET 1 HI
   286 1868 91 F8	     BM      JUM9	     No
   287 186A 25 01	     CI      H'1'	     Is this a player's board?
   288 186C 94 0C	     BNZ     JU78	     No
   289 186E 2A 0E D0	     DCI     PLMV	     Yes, restart PLMV
   290 1871 70		     CLR
   291 1872 17		     ST
   292 1873 2A 0C 2F	     DCI     CFLG	     Zero this as
   293 1876 17		     ST			     safety precaution
   294 1877 90 32	     BR      JU77	     and keep to this level
   295 1879 2A 0F B0 JU78    DCI     MOBS	     Get move count
   296 187C 24 FE	     AI      -H'2'	     for current board
   297 187E 8E		     ADC
   298 187F 16		     LM
   299 1880 52		     LR      2,A	     Save temporarily
   300 1881 70		     CLR		     Mobility for passed board
   301 1882 17		     ST			     to 0 to prevent compression
   302 1883 10		     LR      DC,H
   303 1884 20 1C	     LI      H'1C'	     Get to byte location
   304 1886 8E		     ADC		     in the "passed board" position
   305 1887 43		     LR      A,3	     Save destination info
   306 1888 17		     ST			     the move byte
   307 1889 44		     LR      A,4
   308 188A 17		     ST			     and the byte #
   309 188B 70		     CLR
   310 188C 18		     COM		     and a flag of -1
   311 188D 17		     ST			     in the ACTM position
   312 188E 42		     LR      A,2	     and # of moves in PASM
   313 188F 17		     ST
   314 1890 4B		     LR      A,HL
   315 1891 14		     SR      4
   316 1892 2A 0E F0	     DCI     SCOR	     Advance score
   317 1895 24 FE	     AI      -H'2'	     Scor not saved for HL=1
   318 1897 13		     SL      1
   319 1898 8E		     ADC		     from current board
   320 1899 0E		     LR      Q,DC
   321 189A 2C		     XDC
   322 189B 0F		     LR      DC,Q
   323 189C 74		     LIS     H'4'
   324 189D 8E		     ADC
   325 189E 2C		     XDC
   326 189F 16		     LM
   327 18A0 2C		     XDC
   328 18A1 17		     ST
   329 18A2 2C		     XDC
   330 18A3 16		     LM
   331 18A4 2C		     XDC
   332 18A5 17		     ST
   333 18A6 72		     LIS     H'2'	     Copy data two blocks forward
   334 18A7 15		     SL      4
   335 18A8 CB		     AS      HL
   336 18A9 5B		     LR      HL,A
   337 18AA 10	     JU77    LR      DC,H
   338 18AB 28 16 7D	     PI      SCRD	     SC to RAM direct
   339 18AE 28 1E FF	     PI      EMPT	     Re-do to reflect changes
   340 18B1 43		     LR      A,3	     Save destination
   341 18B2 51		     LR      1,A	     as mask for FIND
   342 18B3 70		     CLR
   343 18B4 52		     LR      2,A
   344 18B5 56		     LR      6,A
   345 18B6 29 1B 0E	     JMP     RFJ	     Find continuations if any
   346		     * NORM  FORE
   347		     *Now make normal move
   348 18B9 10	     NORM    LR      DC,H	     Back in step
   349 18BA 70		     CLR
   350 18BB 50		     LR      0,A	     Flag for no promotion
   351 18BC 63		     LISU    PLOC	     Get back to Active pieces
   352 18BD 4C		     LR      A,S	     LISL still OK
   353 18BE C3		     AS      3
   354 18BF 5C		     LR      S,A	     Put in moved piece
   355 18C0 42		     LR      A,2	     Was it a king
   356 18C1 F2		     NS      2
   357 18C2 94 18	     BNZ     NOM6	     Yes so don't promote but do put ki
   358 18C4 72		     LIS     H'2'
   359 18C5 F5		     NS      5		     Test for direction
   360 18C6 0A		     LR      A,IS
   361 18C7 84 09	     BZ      NOM4	     Is it going forward?
   362 18C9 25 18	     CI      O'30'	     Did it get to the byte 0?
   363 18CB 94 1D	     BNZ     FORE	     No
   364 18CD 7F		     LIS     H'F'	    and in king row?
   365 18CE 15		     SL      4
   366 18CF 90 06	     BR      NOM5	     Mark for promotion
   367 18D1 25 1B    NOM4    CI      O'33'	     Did it get to byte 3?
   368 18D3 94 15	     BNZ     FORE	     No
   369 18D5 7F		     LIS     H'F'	     and in king row?
   370 18D6 F3	     NOM5    NS      3
   371 18D7 84 11	     BZ      FORE	     No
   372 18D9 71		     LIS     H'1'
   373 18DA 50		     LR      0,A	     A promotion flag
   374 18DB 64	     NOM6    LISU    KLOC	     Now get to king byte
   375 18DC 4C		     LR      A,S	     Get corresponding king byte for de
   376 18DD C3		     AS      3		     Insert king
   377 18DE 5C		     LR      S,A	     And replace byte
   378 18DF 70		     CLR
   379 18E0 C0		     AS      0
   380 18E1 84 07	     BZ      FORE
   381 18E3 20 26	     LI      ACTM	     Get to active  material location
   382 18E5 0B		     LR      IS,A
   383 18E6 4C		     LR      A,S
   384 18E7 1F		     INC		     Credit for promotion
   385 18E8 5C		     LR      S,A
   386 18E9 2A 0C 2F FORE    DCI     CFLG	     Have we compacted?
   387 18EC 0E		     LR      Q,DC
   388 18ED 16		     LM
   389 18EE 50		     LR      0,A	     Save value to add
   390 18EF 0F		     LR      DC,Q
   391 18F0 70		     CLR		     and clear
   392 18F1 17		     ST
   393 18F2 4B		     LR      A,HL	     Where are we?
   394 18F3 14		     SR      4
   395 18F4 25 01	     CI      H'1'
   396 18F6 94 04	     BNZ     FOR8
   397 18F8 29 19 91	     JMP     FOR5	     Player's move has been made
   398 18FB 47	     FOR8    LR      A,7
   399 18FC 18		     COM		     Change color
   400 18FD 57		     LR      7,A
   401 18FE 71		     LIS     H'1'
   402 18FF 15		     SL      4
   403 1900 CB		     AS      HL
   404 1901 5B		     LR      HL,A
   405 1902 10		     LR      DC,H	     GET back in step
   406 1903 28 1A 18	     PI      SCRA	     Prepare for normal advance
   407 1906 4B		     LR      A,HL	     Can we advance score?
   408 1907 14		     SR      4
   409 1908 25 03	     CI      H'3'	     Note HL has already been advanced
   410 190A 91 0D	     BM      FOR2	     Advance score normally
   411 190C 94 67	     BNZ     FOR4	     Special case
   412 190E 2A 0E F2	     DCI     SCOR+2
   413 1911 20 C1	     LI      H'C1'
   414 1913 17		     ST
   415 1914 1F		     INC
   416 1915 17		     ST
   417 1916 90 5D	     BR      FOR4	     May still be a special case
   418 1918 24 FE    FOR2    AI      -H'2'	     Scor not saved for HL=10
   419 191A 13		     SL      1		     Scores take 2 bytes each so *2
   420 191B 2A 0E F0	     DCI     SCOR
   421 191E 8E		     ADC		     Current location
   422 191F 0E		     LR      Q,DC
   423 1920 2C		     XDC
   424 1921 0F		     LR      DC,Q
   425 1922 73		     LIS     H'3'
   426 1923 18		     COM		     Fast -H'4'
   427 1924 8E		     ADC		     Get to earlier entry
   428 1925 16		     LM			     Copy it
   429 1926 2C		     XDC
   430 1927 17		     ST
   431 1928 2C		     XDC
   432 1929 25 C1	     CI      H'C1'
   433 192B 16		     LM
   434 192C 2C		     XDC
   435 192D 94 04	     BNZ     FOR7
   436 192F 1F		     INC		     Add 2 for win or lose reporting
   437 1930 1F		     INC
   438 1931 C0		     AS      0
   439 1932 17	     FOR7    ST
   440		     * Compacting routine to save space
   441 1933 2A 0E 3E	     DCI     TRE3	     Location of level 30 passed flag
   442 1936 70		     CLR
   443 1937 8C		     XM
   444 1938 91 38	     BM      FOR3	     Don't compress in this case
   445 193A 4B		     LR      A,HL
   446 193B 14		     SR      4
   447 193C 25 05	     CI      H'5'	     Room to compact?
   448 193E 81 32	     BP      FOR3	     No, let player make his next move
   449 1940 24 FC	     AI      -H'4'	     2 back in MOB
   450 1942 2A 0F B0	     DCI     MOBS	     Compacting possible only if but
   451 1945 8E		     ADC		     single moves available for 2
   452 1946 16		     LM			     successive moves
   453 1947 25 01	     CI      H'1'	     (a 0 excludes passed boards)
   454 1949 94 27	     BNZ     FOR3	     Not 1 move
   455 194B 16		     LM
   456 194C 25 01	     CI      H'1'
   457 194E 94 22	     BNZ     FOR3	     Not 1 move
   458 1950 4B		     LR      A,HL
   459 1951 14		     SR      4
   460 1952 24 FC	     AI      -H'4'	     Back 2 levels
   461 1954 13		     SL      1
   462 1955 2A 0E F0	     DCI     SCOR
   463 1958 8E		     ADC
   464 1959 16		     LM
   465 195A 25 C1	     CI      H'C1'
   466 195C 94 06	     BNZ     FORY
   467 195E 0E		     LR      Q,DC
   468 195F 72		     LIS     H'2'
   469 1960 88		     AM
   470 1961 0F		     LR      DC,Q
   471 1962 17		     ST
   472 1963 71	     FORY    LIS     H'1'
   473 1964 18		     COM		     Back up 2 levels
   474 1965 15		     SL      4
   475 1966 CB		     AS      HL
   476 1967 5B		     LR      HL,A
   477 1968 2A 0C 2F	     DCI     CFLG
   478 196B 72		     LIS     H'2'
   479 196C 17		     ST			     Set flag for SCOR check
   480 196D 10		     LR      DC,H	     GET back in step
   481 196E 28 1A 18	     PI      SCRA	     Prepare for normal advance
   482 1971 29 1A F1 FOR3    JMP     FIND	     Go forward normally
   483 1974 2A 0C 2A FOR4    DCI     SELX
   484 1977 0E		     LR      Q,DC
   485 1978 16		     LM
   486 1979 25 01	     CI      H'1'
   487 197B 91 F5	     BM      FOR3	     Normal play
   488 197D 1F		     INC		     Book or random move has been made
   489 197E 0F		     LR      DC,Q
   490 197F 17		     ST			     so count this as a move
   491 1980 70		     CLR		     Clear start of PLMV list for
   492 1981 2A 0E D0	     DCI     PLMV	     listing player's possible moves
   493 1984 17		     ST
   494 1985 10		     LR      DC,H
   495 1986 2C		     XDC
   496 1987 2A 0E 10	     DCI     TREE	     Prepare for TRAN
   497 198A 11		     LR      H,DC
   498 198B 28 1A 34	     PI      RARA	     RAM to RAM transfer
   499 198E 29 1A F1	     JMP     FIND	     FIND exits to PMOV when HL is H'10
   500 1991 28 13 2B FOR5    PI      BORD	     Show board after players move
   501 1994 74		     LIS     H'4'	     "MY MOVE"
   502 1995 50		     LR      0,A
   503 1996 28 12 49	     PI      WMC
   504 1999 2A 0E F0	     DCI     SCOR	     Start scores off at H'C000'
   505 199C 20 C1	     LI      H'C1'	     so that CM's will always work
   506 199E 17		     ST
   507 199F 17		     ST
   508 19A0 17		     ST
   509 19A1 1F		     INC
   510 19A2 17		     ST
   511 19A3 47		     LR      A,7
   512 19A4 18		     COM		Change color
   513 19A5 57		     LR      7,A
   514 19A6 71		     LIS     H'1'
   515 19A7 15		     SL      4
   516 19A8 CB		     AS      HL
   517 19A9 5B		     LR      HL,A
   518 19AA 10		     LR      DC,H	     Advance H
   519 19AB 28 1A 18	     PI      SCRA	     SC to RA with sides reversed
   520 19AE 10		     LR      DC,H
   521 19AF 28 1A 07	     PI      RASC	     RA to SC preparing for a normal mo
   522 19B2 2A 0C 2A	     DCI     SELX
   523 19B5 0E		     LR      Q,DC
   524 19B6 16		     LM
   525 19B7 1F		     INC		     Add 1 to move count
   526 19B8 0F		     LR      DC,Q
   527 19B9 17		     ST
   528 19BA 25 01	     CI      H'1'
   529 19BC 84 04	     BZ      FOR6	     Use stored move
   530 19BE 29 1A F1	     JMP     FIND	     Go find normal reply
   531 19C1 62	     FOR6    LISU    2		     Get random number
   532 19C2 6D		     LISL    5
   533 19C3 73		     LIS     H'3'
   534 19C4 FC		     NS      S		     0 to 3 random number
   535 19C5 50		     LR      0,A
   536 19C6 12		     SR      1
   537 19C7 51		     LR      1,A	     0 to 1 random number
   538 19C8 71		     LIS     H'1'
   539 19C9 F0		     NS      0
   540 19CA 50		     LR      0,A	     2nd 0 to 1 random number
   541		     * Machine to make 2nd move from book
   542 19CB 2A 0C 25	     DCI     BKMV	     Get stored move munber
   543 19CE 16		     LM
   544 19CF 13		     SL      1		     X2, 2 entries for each input move
   545 19D0 C0		     AS      0		     Random choice between them
   546 19D1 2A 1F 24	     DCI     BOK2	     Stored table of book replies
   547 19D4 8E		     ADC
   548 19D5 16		     LM			     Get reply number
   549 19D6 50		     LR      0,A
   550 19D7 70		     CLR		     Use second number to select which
   551 19D8 E1		     XS      1
   552 19D9 40		     LR      A,0
   553 19DA 84 02	     BZ      BMV2
   554 19DC 14		     SR      4
   555 19DD 21 07    BMV2    NI      H'7'
   556 19DF 50		     LR      0,A	     The final selection
   557 19E0 2A 1A 02	     DCI     REDM	     Possible Red moves
   558 19E3 16	     BM17    LM			     Get byte record
   559 19E4 51		     LR      1,A
   560 19E5 41	     BM18    LR      A,1
   561 19E6 F1		     NS      1
   562 19E7 94 04	     BNZ     BM19	     Is this byte exhausted?
   563 19E9 16		     LM			     Step over byte info
   564 19EA 90 F8	     BR      BM17	     Go to next byte record
   565 19EC 52	     BM19    LR      2,A
   566 19ED 24 FF	     AI      H'FF'	     Subtract 1
   567 19EF F1		     NS      1
   568 19F0 51		     LR      1,A	     byte less rightmost bit
   569 19F1 E2		     XS      2		     This leaves 1 bit in A
   570 19F2 30		     DS      0
   571 19F3 81 F1	     BP      BM18
   572 19F5 56		     LR      6,A	     Save the byte bit
   573 19F6 16		     LM			     Get the byte info
   574 19F7 54		     LR      4,A	     The byte indicator
   575 19F8 10		     LR      DC,H
   576 19F9 7C		     LIS     H'C'
   577 19FA 8E		     ADC
   578 19FB 46		     LR      A,6
   579 19FC 17		     ST
   580 19FD 44		     LR      A,4
   581 19FE 17		     ST
   582 19FF 29 17 90	     JMP     SELE
   583		     *-*-*- Initial moves for red
   584 1A02 07	     REDM   DC	    B'00000111'      3 pieces
   585 1A03 0A		    DC	    B'00001010'      Byte 2, RB
   586 1A04 0F		    DC	    B'00001111'      4 pieces
   587 1A05 0B		    DC	    B'00001011'      Byte 2, LB
   588 1A06 00		    DC	    H'00'
   589		     * RASC SCRA FKT STMV
   590		     *-*-*- RASC RAM to SC transfer
   591 1A07 08	     RASC    LR      K,P	     RAM to SC
   592 1A08 63		     LISU    PLOC	    ←SC buffer with Active and Passive
   593 1A09 68		     LISL    0
   594 1A0A 16	     RAS2    LM
   595 1A0B 5D		     LR      I,A
   596 1A0C 8F FD	     BR7     RAS2
   597 1A0E 16		     LM
   598 1A0F 5D		     LR      I,A
   599 1A10 64		     LISU    KLOC
   600 1A11 16	     RAS3    LM
   601 1A12 5D		     LR      I,A
   602 1A13 8F FD	     BR7     RAS3
   603 1A15 16		     LM
   604 1A16 5D		     LR      I,A
   605 1A17 0C		     PK
   606		     *	SCRA  SC to RAM with side reversal
   607 1A18 08	     SCRA    LR      K,P	     SC to RAM for side reversal
   608 1A19 63		     LISU    PLOC
   609 1A1A 6C		     LISL    4
   610 1A1B 78		     LIS     H'8'
   611 1A1C 50		     LR      0,A
   612 1A1D 4D	     SCR1    LR      A,I
   613 1A1E 17		     ST
   614 1A1F 30		     DS      0
   615 1A20 94 FC	     BNZ     SCR1
   616 1A22 64		     LISU    KLOC
   617 1A23 68		     LISL    0
   618 1A24 74		     LIS     H'4'
   619 1A25 50		     LR      0,A
   620 1A26 4D	     SCR2    LR      A,I
   621 1A27 17		     ST
   622 1A28 30		     DS      0
   623 1A29 94 FC	     BNZ     SCR2
   624 1A2B 70		     CLR
   625 1A2C 17		     ST
   626 1A2D 17		     ST
   627 1A2E 6F		     LISL    7
   628 1A2F 4E		     LR      A,D
   629 1A30 17		     ST
   630 1A31 4E		     LR      A,D
   631 1A32 17		     ST
   632 1A33 0C		     PK
   633		     *-*-*- RAM TO RAM, source start in DC1, destination start in DC0,
   634		     * Uses R0
   635 1A34 08	     RARA    LR      K,P
   636 1A35 71		     LIS     H'1'
   637 1A36 15		     SL      4
   638 1A37 50		     LR      0,A
   639 1A38 2C	     RAR2    XDC
   640 1A39 16		     LM
   641 1A3A 2C		     XDC
   642 1A3B 17		     ST
   643 1A3C 30		     DS      0
   644 1A3D 94 FA	     BNZ     RAR2
   645 1A3F 0C		     PK
   646		     *-*-*- Test if Kings only can move
   647 1A40 08	     FKT     LR      K,P
   648 1A41 70		     CLR
   649 1A42 C7		     AS      7
   650 1A43 94 09	     BNZ     FK1	     Only kings in this direction
   651 1A45 70	     FKT2    CLR
   652 1A46 E3		     XS      3
   653 1A47 0C		     PK			     Normal pieces OK
   654 1A48 08	     BKT     LR      K,P
   655 1A49 70		     CLR
   656 1A4A C7		     AS      7		   Test sides for backward move
   657 1A4B 94 F9	     BNZ     FKT2	      NORMAL pieces can move
   658 1A4D 72	     FK1     LIS     H'2'
   659 1A4E 15		     SL      4
   660 1A4F C4		     AS      4
   661 1A50 0B		     LR      IS,A	     KINGS only can move
   662 1A51 4C		     LR      A,S
   663 1A52 F3		     NS      3
   664 1A53 53		     LR      3,A
   665 1A54 0C		     PK
   666		     *Subroutine to add to MOBILITY, and to store MOVE and FLAG bytes i
   667 1A55 08	     STMV    LR      K,P
   668 1A56 4B		     LR      A,HL
   669 1A57 14		     SR      4
   670 1A58 25 01	     CI      H'01'	     Is this the player's board
   671 1A5A 94 19	     BNZ     STM3	     No
   672 1A5C 2A 0E D0	     DCI     PLMV	     Player's moves stored separately
   673 1A5F 70	     STM0    CLR
   674 1A60 8C		     XM
   675 1A61 84 04	     BZ      STM1	     Find empty space
   676 1A63 16		     LM			     Skip info space
   677 1A64 90 FA	     BR      STM0	     Try again
   678 1A66 70	     STM1    CLR		     Back up
   679 1A67 18		     COM
   680 1A68 8E		     ADC
   681 1A69 43		     LR      A,3
   682 1A6A 17		     ST
   683 1A6B 44		     LR      A,4
   684 1A6C 13		     SL      1
   685 1A6D 13		     SL      1
   686 1A6E C5		     AS      5
   687 1A6F 17		     ST
   688 1A70 70		     CLR
   689 1A71 17		     ST			     Store 0 as stop
   690 1A72 90 10	     BR      STM2
   691 1A74 70	     STM3    CLR
   692 1A75 E2		     XS      2		     To set status byte
   693 1A76 94 0C	     BNZ    STM2	    One is already stored
   694 1A78 10		     LR      DC,H	     Get back in step
   695 1A79 7C		     LIS     H'C'	     To get to MOVE byte
   696 1A7A 8E		     ADC
   697 1A7B 43	     STM4    LR      A,3	     Get move byte
   698 1A7C 17		     ST			     Store it in RAM
   699 1A7D 44		     LR      A,4	     Get the byte pointer
   700 1A7E 13		     SL      1
   701 1A7F 13		     SL      1
   702 1A80 C5		     AS      5
   703 1A81 17		     ST			     Put this into RAM
   704 1A82 10		     LR      DC,H	     May be necessary
   705 1A83 70	     STM2    CLR
   706 1A84 50		     LR      0,A	     To accumulate count
   707 1A85 43		     LR      A,3
   708 1A86 30	     STM5    DS      0
   709 1A87 24 FF	     AI      H'FF'
   710 1A89 F3		     NS      3		     Removes rightmost bit
   711 1A8A 53		     LR      3,A
   712 1A8B 94 FA	     BNZ     STM5
   713 1A8D 40		     LR      A,0
   714 1A8E 18		     COM
   715 1A8F 1F		     INC
   716 1A90 C2		     AS      2		     Add in previous count
   717 1A91 52		     LR      2,A
   718 1A92 0C		     PK
   719		     * NEXT  FIND  RFJ	LFJ  RBJ  LBJ
   720 1A93 28 1E FF NEXT    PI      EMPT	     Needs redoing if came to SELE via
   721 1A96 10		     LR      DC,H
   722 1A97 4B		     LR      A,HL
   723 1A98 14		     SR      4
   724 1A99 25 03	     CI      H'3'
   725 1A9B 81 1E	     BP      NEXX	     Can not be a continuation
   726 1A9D 73		     LIS      H'3'	     Look to earlier board data
   727 1A9E 18		     COM		     Fast -4
   728 1A9F 8E		     ADC
   729 1AA0 16		     LM
   730 1AA1 51		     LR      1,A	     Get move byte just in case
   731 1AA2 16		     LM
   732 1AA3 54		     LR      4,A	     and byte info
   733 1AA4 70		     CLR
   734 1AA5 52		     LR      2,A
   735 1AA6 8C		     XM			     Now look at ACTM
   736 1AA7 81 12	     BP      NEXX	     Not a continuation board
   737 1AA9 10		     LR      DC,H
   738 1AAA 7D		     LIS     H'D'
   739 1AAB 8E		     ADC
   740 1AAC 73		     LIS     H'3'	     Get last used direction
   741 1AAD 8A		     NM
   742 1AAE 1F		     INC
   743 1AAF 25 03	     CI      H'3'
   744 1AB1 91 15	     BM      NEXY	     Last direction used
   745 1AB3 55		     LR      5,A
   746 1AB4 70		     CLR
   747 1AB5 18		     COM
   748 1AB6 56		     LR      6,A	     Set continuation flag
   749 1AB7 29 1B 68	     JMP     RBJ0
   750 1ABA 10	     NEXX    LR      DC,H
   751 1ABB 7D		     LIS     H'D'	     Last used byte info
   752 1ABC 8E		     ADC
   753 1ABD 16		     LM
   754 1ABE 55		     LR      5,A
   755 1ABF 21 0F	     NI      H'F'
   756 1AC1 1F		     INC
   757 1AC2 50		     LR      0,A
   758 1AC3 25 0F	     CI      H'F'	     Is this the last byte and directio
   759 1AC5 81 04	     BP      NEXA
   760 1AC7 29 1D 35 NEXY    JMP     AFT	     Yes, so back up
   761 1ACA 10	     NEXA    LR      DC,H
   762 1ACB 71		     LIS     H'1'	     Set to 1 for normal back-up
   763 1ACC 56		     LR      6,A
   764 1ACD 70		     CLR
   765 1ACE 18		     COM
   766 1ACF 51		     LR      1,A	     All pieces allowed to move
   767 1AD0 10		     LR      DC,H
   768 1AD1 40		     LR      A,0
   769 1AD2 12		     SR      1
   770 1AD3 12		     SR      1
   771 1AD4 21 03	     NI      H'3'
   772 1AD6 54		     LR      4,A
   773 1AD7 45		     LR      A,5
   774 1AD8 25 0F	     CI      H'F'
   775 1ADA 73		     LIS     H'3'
   776 1ADB 91 0B	     BM      NEXJ	     Jumps required
   777 1ADD F0		     NS      0
   778 1ADE 55		     LR      5,A
   779 1ADF 84 04	     BZ      NEN0
   780 1AE1 29 1C AA	     JMP     RBN0
   781 1AE4 29 1C 5E NEN0    JMP     RFN
   782 1AE7 F0	     NEXJ    NS      0
   783 1AE8 55		     LR      5,A
   784 1AE9 84 04	     BZ      NEJ0
   785 1AEB 29 1B 68	     JMP     RBJ0
   786 1AEE 29 1B 0E NEJ0    JMP     RFJ
   787		     *We enter here on going forward
   788 1AF1 10	     FIND    LR      DC,H
   789 1AF2 4B		     LR      A,HL
   790 1AF3 14		     SR      4
   791 1AF4 25 02	     CI      H'2'
   792 1AF6 94 0B	     BNZ     FIN1
   793 1AF8 7E		     LIS     H'E'	     Compute ACTM+PASM+9
   794 1AF9 8E		     ADC
   795 1AFA 79		     LIS     H'9'	     Constant term
   796 1AFB 88		     AM
   797 1AFC 88		     AM
   798 1AFD 2A 0C 2C	     DCI     AP20	     Used by EVAL to compute MAT
   799 1B00 17		     ST
   800 1B01 10		     LR      DC,H
   801 1B02 28 1A 07 FIN1    PI      RASC	     Get board into SC
   802 1B05 28 1E FF	     PI      EMPT	     Compute the empty squares
   803 1B08 70		     CLR
   804 1B09 54		     LR      4,A	     Start with byte 0
   805 1B0A 52		     LR      2,A	     Mobility count and move-found flag
   806 1B0B 56		     LR      6,A	     So all moves will be found
   807 1B0C 18		     COM
   808 1B0D 51		     LR      1,A	     To find all possible jump moves
   809 1B0E 20 18    RFJ     LI      ISA	     Active pieces
   810 1B10 C4		     AS      4		     Add byte off-set
   811 1B11 0B		     LR      IS,A	     Get to byte
   812 1B12 4C		     LR      A,S
   813 1B13 F1		     NS      1		     FF if normal, 1 bit only for conti
   814 1B14 53		     LR      3,A	     3 used to develop final byte
   815 1B15 28 1A 40	     PI      FKT	     Any forward moving pieces?
   816 1B18 84 56	     BZ      RBJ	     No, look to backward moving
   817 1B1A 20 2A	     LI      ISE+1	     Look to empty squares forward
   818 1B1C C4		     AS      4		     Add byte off-set
   819 1B1D 0B		     LR      IS,A	     Destination byte location
   820 1B1E 4C		     LR      A,S
   821 1B1F 12		     SR      1
   822 1B20 F3		     NS      3
   823 1B21 53		     LR      3,A	     Only pieces that have place to lan
   824 1B22 20 1C	     LI      ISP	     Passive pieces
   825 1B24 C4		     AS      4
   826 1B25 0B		     LR      IS,A
   827 1B26 4D		   LR	   A,I		  Look to RF passive pieces forward
   828 1B27 15		   SL	   4		  In front of left-most bits
   829 1B28 50		   LR	   0,A
   830 1B29 4C		   LR	   A,S
   831 1B2A 14		   SR	   4		  In front of right-most bits
   832 1B2B 12		   SR	   1
   833 1B2C C0		   AS	   0
   834 1B2D F3		   NS	   3
   835 1B2E 53		   LR	   3,A		  Pieces that can jump RF
   836 1B2F 84 0B	     BZ      LFJ	  None was found
   837 1B31 71		     LIS     H'1'	    The RFJ direction and J indicator
   838 1B32 15		     SL      4
   839 1B33 55		     LR      5,A
   840 1B34 28 1A 55	     PI      STMV	     Store move byte and info
   841 1B37 70		     CLR
   842 1B38 C6		     AS      6		     Recall indicator
   843 1B39 94 2C	     BNZ     LFJ2
   844 1B3B 20 18    LFJ     LI      ISA
   845 1B3D C4		     AS      4		     Add byte off-set
   846 1B3E 0B		     LR      IS,A	     Get to initial byte
   847 1B3F 4C		     LR      A,S
   848 1B40 F1		     NS      1		     FF if normal, 1 bit only for conti
   849 1B41 53		     LR      3,A
   850 1B42 28 1A 40	     PI      FKT
   851 1B45 20 2A	     LI      ISE+1	     Empty squares forward
   852 1B47 C4		     AS      4
   853 1B48 0B		     LR      IS,A
   854 1B49 4C		     LR      A,S
   855 1B4A 13		     SL      1
   856 1B4B F3		     NS      3
   857 1B4C 53		     LR      3,A	     Only pieces that have a place to l
   858 1B4D 20 1C	     LI      ISP
   859 1B4F C4		     AS      4
   860 1B50 0B		     LR      IS,A
   861 1B51 4D		   LR	   A,I
   862 1B52 15		   SL	   4
   863 1B53 13		   SL	   1
   864 1B54 50		   LR	   0,A
   865 1B55 4C		   LR	   A,S
   866 1B56 14		   SR	   4
   867 1B57 C0		   AS	   0
   868 1B58 F3		   NS	   3
   869 1B59 53		   LR	   3,A		   Pieces that can jump LF
   870 1B5A 84 14	     BZ      RBJ
   871 1B5C 20 11	     LI      H'11'	     The LFJ direction and J indicator
   872 1B5E 55		     LR      5,A
   873 1B5F 28 1A 55	     PI      STMV
   874 1B62 70		     CLR
   875 1B63 E6		     XS      6
   876 1B64 84 0A	     BZ      RBJ
   877 1B66 90 33    LFJ2    BR      RBJ2
   878 1B68 45	     RBJ0    LR      A,5
   879 1B69 25 02	     CI      H'2'	     Which direction, 1, 2, or 3?
   880 1B6B 91 30	     BM      LBJ	     It was a 3
   881 1B6D 94 CD	     BNZ     LFJ	     It was a 1
   882 1B6F 20 18    RBJ     LI      ISA
   883 1B71 C4		     AS      4		     Add byte off-set
   884 1B72 0B		     LR      IS,A	     Get to initial byte
   885 1B73 4C		     LR      A,S
   886 1B74 F1		     NS      1		     FF if normal, 1 bit only for conti
   887 1B75 53		     LR      3,A
   888 1B76 28 1A 48	     PI      BKT	     Any backward moving pieces?
   889 1B79 84 50	     BZ      FJ1	    No
   890 1B7B 20 28	     LI      ISE-1	     Look to empty squares backward
   891 1B7D C4		     AS      4
   892 1B7E 0B		     LR      IS,A
   893 1B7F 4C		     LR      A,S
   894 1B80 12		     SR      1
   895 1B81 F3		     NS      3
   896 1B82 53		     LR      3,A
   897 1B83 20 1B	     LI      ISP-1	     Look to passive pieces backward
   898 1B85 C4		     AS      4
   899 1B86 0B		     LR      IS,A
   900 1B87 4D		   LR	   A,I
   901 1B88 15		   SL	   4
   902 1B89 50		   LR	   0,A
   903 1B8A 4C		   LR	   A,S
   904 1B8B 14		   SR	   4
   905 1B8C 12		   SR	   1
   906 1B8D C0		   AS	   0
   907 1B8E F3		   NS	   3
   908 1B8F 53		   LR	   3,A		   Pieces that can jump RB
   909 1B90 84 0B	     BZ      LBJ
   910 1B92 20 12	     LI      H'12'	     The RBJ direction and J indicator
   911 1B94 55		     LR      5,A
   912 1B95 28 1A 55	     PI      STMV
   913 1B98 70		     CLR
   914 1B99 E6		     XS      6
   915 1B9A 94 2C    RBJ2    BNZ     LBJ2
   916 1B9C 20 18    LBJ     LI      ISA
   917 1B9E C4		     AS      4		     Add byte off-set
   918 1B9F 0B		     LR      IS,A	     Get to initial byte
   919 1BA0 4C		     LR      A,S
   920 1BA1 F1		     NS      1		     FF if normal, 1 bit only for conti
   921 1BA2 53		     LR      3,A
   922 1BA3 28 1A 48	     PI      BKT
   923 1BA6 20 28	     LI      ISE-1	     Empty squares backward
   924 1BA8 C4		     AS      4
   925 1BA9 0B		     LR      IS,A
   926 1BAA 4C		     LR      A,S
   927 1BAB 13		     SL      1
   928 1BAC F3		     NS      3
   929 1BAD 53		     LR      3,A
   930 1BAE 20 1B	     LI      ISP-1	   Look to passive pieces backward
   931 1BB0 C4		     AS      4
   932 1BB1 0B		     LR      IS,A
   933 1BB2 4D		   LR	   A,I
   934 1BB3 15		   SL	   4
   935 1BB4 13		   SL	   1
   936 1BB5 50		   LR	   0,A
   937 1BB6 4C		   LR	   A,S
   938 1BB7 14		   SR	   4
   939 1BB8 C0		   AS	   0
   940 1BB9 F3		   NS	   3
   941 1BBA 53		   LR	   3,A		   Pieces that can jump LB
   942 1BBB 84 0E	     BZ      FJ1
   943 1BBD 20 13	     LI      H'13'	     The RBJ direction and J indicator
   944 1BBF 55		     LR      5,A
   945 1BC0 28 1A 55	     PI      STMV
   946 1BC3 70		     CLR
   947 1BC4 E6		     XS      6
   948 1BC5 84 0D	     BZ      FJ2	    We want them all
   949 1BC7 29 17 90 LBJ2    JMP     SELE	     A successful NEXT
   950 1BCA 70	     FJ1    CLR			     No backward moves
   951 1BCB E6		     XS      6
   952 1BCC 84 06	     BZ      FJ2	     We want them all
   953 1BCE 81 09	     BP      FJ3	    Try next byte
   954 1BD0 29 1D 35	     JMP     AFT	     A NEXT continuation failure
   955 1BD3 41	     FJ2     LR      A,1	     Was it a first continuation try?
   956 1BD4 25 FF	     CI      H'FF'
   957 1BD6 94 0B	     BNZ     FJ4	     Yes
   958 1BD8 44	     FJ3     LR      A,4	     No, to next board byte
   959 1BD9 1F		     INC
   960 1BDA 21 03	     NI      H'3'
   961 1BDC 54		     LR      4,A
   962 1BDD 84 48	     BZ      FJ9	    There are no more
   963 1BDF 29 1B 0E	     JMP     RFJ	     Go round again for next byte
   964 1BE2 70	     FJ4     CLR		     A first continuation try
   965 1BE3 E2		     XS      2		     Was it successful?
   966 1BE4 84 11	     BZ      FJ5	     No
   967		     * Successful continuation try
   968 1BE6 4B		     LR      A,HL
   969 1BE7 14		     SR      4
   970 1BE8 25 05	     CI      H'5'	     Where are we?
   971 1BEA 91 1C	     BM      FJ7	     Maybe can compact data
   972 1BEC 25 01	     CI      H'1'	     A player's board
   973 1BEE 94 42	     BNZ     FJ10	     No
   974 1BF0 28 13 2B	     PI      BORD	     Show board
   975 1BF3 29 12 29	     JMP     DJMP
   976		     * Unsuccessful continuation try
   977 1BF6 4B	     FJ5     LR      A,HL
   978 1BF7 14		     SR      4
   979 1BF8 25 01	     CI      H'1'	     A player's board
   980 1BFA 91 04	     BM      FJ6	     No
   981 1BFC 29 19 91	     JMP     FOR5	     "MY MOVE" etc
   982 1BFF 71	     FJ6     LIS     H'1'	     Back 2 levels
   983 1C00 18		     COM
   984 1C01 15		     SL      4
   985 1C02 CB		     AS      HL
   986 1C03 5B		     LR      HL,A
   987 1C04 29 18 E9	     JMP     FORE
   988		     * A successful continuation that might be compacted
   989 1C07 2A 0E 3E FJ7     DCI     TRE3	     Was 30 passed?
   990 1C0A 70		     CLR
   991 1C0B 8C		     XM
   992 1C0C 91 24	     BM      FJ10	     No, dangerous to compress
   993 1C0E 10		     LR      DC,H
   994 1C0F 70		     CLR
   995 1C10 18		     COM		     Back to PASM
   996 1C11 8E		     ADC
   997 1C12 16		     LM
   998 1C13 25 01	     CI      H'1'	     Other than 1 move?
   999 1C15 94 1B	     BNZ     FJ10	     Yes so save this one here
  1000 1C17 10		     LR      DC,H	     No, so we can move data
  1001 1C18 2C		     XDC		     back by 2 levels
  1002 1C19 71		     LIS     H'1'	     and so save space
  1003 1C1A 18		     COM		     A fast -2
  1004 1C1B 15		     SL      4
  1005 1C1C CB		     AS      HL
  1006 1C1D 5B		     LR      HL,A
  1007 1C1E 10		     LR      DC,H
  1008 1C1F 28 1A 34	     PI      RARA	     Fast RAM to RAM transfer
  1009 1C22 4B		     LR      A,HL
  1010 1C23 14		     SR      4
  1011 1C24 90 1C	     BR      FJ11
  1012		     * All bytes exhausted
  1013 1C26 70	     FJ9     CLR
  1014 1C27 E2		     XS      2
  1015 1C28 94 08	     BNZ      FJ10	     Jumps found
  1016 1C2A 70		     CLR
  1017 1C2B E6		     XS      6		     Go to normal moves?
  1018 1C2C 84 31	     BZ      RFN	     Yes
  1019 1C2E 29 1D 35	     JMP     AFT	     No more jumps
  1020 1C31 4B	     FJ10    LR      A,HL
  1021 1C32 14		     SR      4
  1022 1C33 25 0E	     CI      H'E'
  1023 1C35 91 1F	     BM      FJ12	     Too bad, out of space
  1024 1C37 25 01	     CI      H'1'
  1025 1C39 94 07	     BNZ     FJ11	      Not player's FIND
  1026 1C3B 28 13 2B	     PI      BORD	     Show board with piece moved
  1027 1C3E 29 11 16	     JMP     PMOV	     Init cursor and say "MUST JUMP"
  1028 1C41 24 FE    FJ11    AI      -H'2'
  1029 1C43 2A 0F B0	     DCI     MOBS
  1030 1C46 8E		     ADC
  1031 1C47 42		     LR      A,2
  1032 1C48 17		     ST
  1033 1C49 10		     LR      DC,H	     Prepare for continuation
  1034 1C4A 20 1E	     LI      H'1E'	     To ACTM in passed board
  1035 1C4C 8E		     ADC		     These data are over-
  1036 1C4D 70		     CLR		     written if no continuation
  1037 1C4E 18		     COM		     A -1 signals
  1038 1C4F 17		     ST			     a continuation
  1039 1C50 42		     LR      A,2	     A 1 here signals
  1040 1C51 17		     ST			     a single jump case
  1041 1C52 29 17 90	     JMP     SELE
  1042 1C55 64	     FJ12    LISU    KLOC	     Correct PASM and stop
  1043 1C56 6F		     LISL    H'7'
  1044 1C57 71		     LIS     H'1'	    Allow for a piece capture
  1045 1C58 18		     COM		    A fast -2
  1046 1C59 CC		     AS      S
  1047 1C5A 5C		     LR      S,A
  1048 1C5B 29 1E 17	     JMP     EVAL
  1049		     * RFN LFN RBN LBN NORF NORT
  1050 1C5E 20 18    RFN     LI      ISA
  1051 1C60 C4		     AS      4		     Add byte off-set
  1052 1C61 0B		     LR      IS,A	     Get to initial byte
  1053 1C62 4C		     LR      A,S
  1054 1C63 53		     LR      3,A
  1055 1C64 28 1A 40	     PI      FKT
  1056 1C67 84 49	     BZ      RBN
  1057 1C69 20 29	     LI      ISE	     Start of empty region
  1058 1C6B C4		     AS      4		     Add off-set
  1059 1C6C 0B		     LR      IS,A
  1060 1C6D 4D		   LR	   A,I		  Look to RF empty squares
  1061 1C6E 15		   SL	   4
  1062 1C6F 50		   LR	   0,A
  1063 1C70 4C		   LR	   A,S
  1064 1C71 14		   SR	   4
  1065 1C72 12		   SR	   1
  1066 1C73 C0		   AS	   0
  1067 1C74 F3		   NS	   3
  1068 1C75 53		   LR	   3,A		  Pieces that can move RF
  1069 1C76 84 0D	     BZ      LFN
  1070 1C78 70		     CLR
  1071 1C79 55		     LR      5,A
  1072 1C7A 28 1A 55	     PI      STMV
  1073 1C7D 70		     CLR
  1074 1C7E E6		     XS      6
  1075 1C7F 84 04	     BZ      LFN
  1076 1C81 29 17 90	     JMP     SELE
  1077 1C84 20 18    LFN     LI      ISA
  1078 1C86 C4		     AS      4		     Add byte off-set
  1079 1C87 0B		     LR      IS,A	     Get to initial byte
  1080 1C88 4C		     LR      A,S
  1081 1C89 53		     LR      3,A
  1082 1C8A 28 1A 40	     PI      FKT
  1083 1C8D 84 23	     BZ      RBN
  1084 1C8F 20 29	     LI      ISE	     Start of empty region
  1085 1C91 C4		     AS      4		     Add off-set
  1086 1C92 0B		     LR      IS,A
  1087 1C93 4D		   LR	   A,I		     Look to LF empty squares
  1088 1C94 15		   SL	   4
  1089 1C95 13		   SL	   1
  1090 1C96 50		   LR	   0,A
  1091 1C97 4C		   LR	   A,S
  1092 1C98 14		   SR	   4
  1093 1C99 C0		   AS	   0
  1094 1C9A F3		   NS	   3
  1095 1C9B 53		   LR	   3,A		  Pieces that can move LF
  1096 1C9C 84 14	     BZ      RBN
  1097 1C9E 71		     LIS     H'1'
  1098 1C9F 55		     LR      5,A
  1099 1CA0 28 1A 55	     PI      STMV
  1100 1CA3 70		     CLR
  1101 1CA4 E6		     XS      6
  1102 1CA5 84 0B	     BZ      RBN
  1103 1CA7 29 17 90	     JMP     SELE
  1104 1CAA 45	     RBN0    LR      A,5
  1105 1CAB 25 02	     CI      H'2'	     Which direction 1, 2 or 3?
 **OPERATOR SYNTAX    LINE #  1106
  1106
  1107 1CAD 91 26	     BM      LBN	     It was a 3
  1108 1CAF 94 D4	     BNZ     LFN	     It was a 1
  1109 1CB1 20 18    RBN     LI      ISA
  1110 1CB3 C4		     AS      4		     Add byte off-set
  1111 1CB4 0B		     LR      IS,A	     Get to initial byte
  1112 1CB5 4C		     LR      A,S
  1113 1CB6 53		     LR      3,A
  1114 1CB7 28 1A 48	     PI      BKT
  1115 1CBA 84 3F	     BZ      NORT
  1116 1CBC 20 28	     LI      ISE-1
  1117 1CBE C4		     AS      4		     Add off-set
  1118 1CBF 0B		     LR      IS,A
  1119 1CC0 4D		   LR	   A,I		  Look to RB empty squares
  1120 1CC1 15		   SL	   4
  1121 1CC2 50		   LR	   0,A
  1122 1CC3 4C		   LR	   A,S
  1123 1CC4 14		   SR	   4
  1124 1CC5 12		   SR	   1
  1125 1CC6 C0		   AS	   0
  1126 1CC7 F3		   NS	   3
  1127 1CC8 53		   LR	   3,A		  Pieces that can move RB
  1128 1CC9 84 0A	     BZ      LBN	  None can
  1129 1CCB 72		     LIS     H'2'
  1130 1CCC 55		     LR      5,A
  1131 1CCD 28 1A 55	     PI      STMV
  1132 1CD0 70		     CLR
  1133 1CD1 E6		     XS      6
  1134 1CD2 94 24	     BNZ     NORF
  1135 1CD4 20 18    LBN     LI      ISA
  1136 1CD6 C4		     AS      4		     Add byte off-set
  1137 1CD7 0B		     LR      IS,A	     Get to initial byte
  1138 1CD8 4C		     LR      A,S
  1139 1CD9 53		     LR      3,A
  1140 1CDA 28 1A 48	     PI      BKT
  1141 1CDD 84 1C	     BZ      NORT
  1142 1CDF 20 28	     LI      ISE-1
  1143 1CE1 C4		     AS      4		     Add off-set
  1144 1CE2 0B		     LR      IS,A
  1145 1CE3 4D		   LR	   A,I		     Look to LB empty squares
  1146 1CE4 15		   SL	   4
  1147 1CE5 13		   SL	   1
  1148 1CE6 50		   LR	   0,A
  1149 1CE7 4C		   LR	   A,S
  1150 1CE8 14		   SR	   4
  1151 1CE9 C0		   AS	   0
  1152 1CEA F3		   NS	   3
  1153 1CEB 53		   LR	   3,A		  Pieces that can move LB
  1154 1CEC 84 0D	     BZ      NORT
  1155 1CEE 73		     LIS     H'3'
  1156 1CEF 55		     LR      5,A
  1157 1CF0 28 1A 55	     PI      STMV
  1158 1CF3 70		     CLR
  1159 1CF4 E6		     XS      6
  1160 1CF5 84 04	     BZ      NORT
  1161 1CF7 29 17 90 NORF    JMP     SELE
  1162		     *We get here if we want to compute mobility and also if no moves f
  1163 1CFA 44	     NORT    LR      A,4
  1164 1CFB 1F		     INC
  1165 1CFC 21 03	     NI      H'3'
  1166 1CFE 54		     LR      4,A
  1167 1CFF 84 04	     BZ      NOR0
  1168 1D01 29 1C 5E	     JMP     RFN	     Go round again for next byte
  1169 1D04 70	     NOR0    CLR
  1170 1D05 E2		     XS      2		     Get mobility count
  1171 1D06 84 2E	     BZ      AFT	     No moves found
  1172 1D08 4B	     NOR1    LR      A,HL	     Where are we?
  1173 1D09 14		     SR      4		     Get Ply number
  1174 1D0A 25 01	     CI      H'1'
  1175 1D0C 94 07	     BNZ     NOR2	     Checking for possible player's mov
  1176 1D0E 28 13 2B	     PI      BORD	     Put up board for player
  1177 1D11 29 11 16	     JMP     PMOV	     Yes, so let him move
  1178 1D14 25 0D    NOR2    CI      H'D'	     Are we out of space?
  1179 1D16 91 1B	     BM      NOR4	     Yes
  1180 1D18 24 FE	     AI      -H'2'	     To index MOBS
  1181 1D1A 50		     LR      0,A
  1182 1D1B 2A 0C 28	     DCI     PLY0	     Neg. of allowed MOB sum
  1183 1D1E 16		     LM
  1184 1D1F 2A 0F B0	     DCI     MOBS
  1185 1D22 90 04	     BR      NOR5
  1186 1D24 88	     NOR3    AM			     Add up mobilities
  1187 1D25 24 FF	     AI      -H'1'	     So single jumps will not count
  1188 1D27 30	     NOR5    DS      0
  1189 1D28 81 FB	     BP      NOR3
  1190 1D2A C2		     AS      2		     Add in the current one
  1191 1D2B 81 06	     BP      NOR4	     Time to stop
  1192 1D2D 42		     LR      A,2
  1193 1D2E 17		     ST			     Save latest mobility
  1194 1D2F 29 17 90	     JMP     SELE	     and go on
  1195 1D32 29 1E 17 NOR4    JMP     EVAL	     Evaluate
  1196		     * AFT
  1197		     *MAT     EQU     H'0'	      Register used for Material Adv. t
  1198		     *POT     EQU     H'6'	      Register used for Positional Adv.
  1199		     *Defined earlier
  1200		     HLS     EQU     H'4'	     Register to save HL off-set
  1201		     *No more moves found so time to back up
  1202 1D35 4B	     AFT     LR      A,HL	     Prepare to back up
  1203 1D36 14		     SR      4
  1204 1D37 25 02	     CI      H'2'
  1205 1D39 94 13	     BNZ     AFT0	     Not at end of tree search
  1206		     *Prepare for verification of player's reply
  1207 1D3B 29 1F 4D	     JMP     STOP
  1208 1D3E 2A 0E 10 AFTT    DCI     TREE	     Back to player's board
  1209 1D41 11		     LR      H,DC
  1210 1D42 47		     LR      A,7
  1211 1D43 18		     COM		     Reverse sides
  1212 1D44 57		     LR      7,A
  1213 1D45 2A 0E D0	     DCI     PLMV	     This space is also used by TREE ro
  1214 1D48 70		     CLR		     Clear first byte
  1215 1D49 17		     ST
  1216 1D4A 29 1A F1	     JMP     FIND	     Get verification info for move
  1217 1D4D 24 FE    AFT0    AI      -H'2'	     SCOR not saved for HL=10
  1218 1D4F 13		     SL      1		     2 bytes per entry
  1219 1D50 2A 0E F0	     DCI     SCOR
  1220 1D53 8E		     ADC
  1221 1D54 0E		     LR      Q,DC
  1222 1D55 16		     LM
  1223 1D56 50		     LR      MAT,A	       The current material advantage t
  1224 1D57 16		     LM
  1225 1D58 56		     LR      POT,A	       The current positional term
  1226 1D59 4B	     AFTE    LR      A,HL
  1227 1D5A 25 30	     CI      H'30'
  1228 1D5C 94 0A	     BNZ     AFT1	     Must test for double jump and cont
  1229 1D5E 2A 0E F0	     DCI     SCOR
  1230 1D61 0E		     LR      Q,DC
  1231 1D62 72		     LIS     H'2'
  1232 1D63 51		     LR      1,A	     So board can be saved if indicated
  1233 1D64 29 1D C0	     JMP     AP2X	     Can handle with -2 passed case
  1234 1D67 10	     AFT1    LR      DC,H	     EVAL enters here
  1235 1D68 71		     LIS     H'1'	     Neg. ACTM for passed board
  1236 1D69 18		     COM		     Fast -2
  1237 1D6A 8E		     ADC
  1238 1D6B 70		     CLR
  1239 1D6C 8C		     XM			     Is -1 board passed
  1240 1D6D 91 17	     BM      AFP1	     Yes
  1241 1D6F 20 EF	     LI      H'EF'	     Is -2 board passed
  1242 1D71 8E		     ADC
  1243 1D72 70		     CLR
  1244 1D73 8C		     XM
  1245 1D74 91 2B	     BM      AFP2	     Yes
  1246		     * -1 and -2 boards not passed
  1247 1D76 4B		     LR      A,HL
  1248 1D77 14		     SR      4
  1249 1D78 24 FE	     AI      -H'2'
  1250 1D7A 51		     LR      1,A	     Back 2 from current HL
  1251 1D7B 24 FE	     AI      -H'2'
  1252 1D7D 13		     SL      1
  1253 1D7E 2A 0E F0	     DCI     SCOR
  1254 1D81 8E		     ADC
  1255 1D82 0E		     LR      Q,DC
  1256 1D83 90 24	     BR      AP2Y	     General routine can now handle
  1257		     * -1 board is passed so this was a multiple jump
  1258 1D85 28 1D FC AFP1    PI      AFBX
  1259 1D88 71		     LIS     H'1'
  1260 1D89 C1		     AS      1
  1261 1D8A 51		     LR      1,A
  1262 1D8B 72		     LIS     H'2'
  1263 1D8C 8E		     ADC
  1264 1D8D 0E		     LR      Q,DC
  1265 1D8E 40		     LR      A,MAT
  1266 1D8F 8D		     CM
  1267 1D90 91 07	     BM      AP12	     Back score for sure
  1268 1D92 94 0A	     BNZ     AP13	     Do not back score
  1269 1D94 46		     LR      A,POT
  1270 1D95 8D		     CM
  1271 1D96 81 06	     BP      AP13	     Do not back
  1272 1D98 0F	     AP12    LR      DC,Q	     Back score here
  1273 1D99 40		     LR      A,MAT
  1274 1D9A 17		     ST
  1275 1D9B 46		     LR      A,POT
  1276 1D9C 17		     ST
  1277 1D9D 29 1D E5 AP13    JMP     AF2B	     Back H by 2
  1278		     * -2 board is passed so backing into a continuation
  1279 1DA0 28 1D FC AFP2    PI      AFBX
  1280 1DA3 41		     LR      A,1
  1281 1DA4 25 01	     CI      H'1'
  1282 1DA6 84 11	     BZ      AP22	     Can't prune and may need to save b
  1283		     * Will handle normal both normal and backing into continuation cas
  1284 1DA8 40	     AP2Y    LR      A,MAT
  1285 1DA9 8D		     CM
  1286 1DAA 91 0D	     BM      AP22	     Can't prune
  1287 1DAC 94 05	     BNZ     AP21	     Can prune
  1288 1DAE 46		     LR      A,POT
  1289 1DAF 8D		     CM
  1290 1DB0 91 07	     BM      AP22	     Can't prune
  1291 1DB2 41	     AP21    LR      A,1	     Prune around multiple jump
  1292 1DB3 15		     SL      4
  1293 1DB4 5B		     LR      HL,A
  1294 1DB5 29 1D F0	     JMP     ABBB	     Prepare for SELE
  1295 1DB8 20 02    AP22    LI      H'2'	     Forward 1 level
  1296 1DBA 0F		     LR      DC,Q
  1297 1DBB 8E		     ADC
  1298 1DBC 0E		     LR      Q,DC	     We may need to save score
  1299 1DBD 41		     LR      A,1
  1300 1DBE 1F		     INC		     Keep HL value in step
  1301 1DBF 51		     LR      1,A
  1302 1DC0 46	     AP2X    LR      A,POT
  1303 1DC1 18		     COM
  1304 1DC2 1F		     INC
  1305 1DC3 56		     LR      POT,A
  1306 1DC4 40		     LR      A,MAT
  1307 1DC5 18		     COM
  1308 1DC6 1F		     INC
  1309 1DC7 50		     LR      MAT,A
  1310 1DC8 8D		     CM
  1311 1DC9 91 07	     BM      AP23	     Can back score
  1312 1DCB 94 1D	     BNZ     AF1B	     Can't back score
  1313 1DCD 46		     LR      A,POT
  1314 1DCE 8D		     CM
  1315 1DCF 81 19	     BP      AF1B	     Can't back score
  1316 1DD1 0F	     AP23    LR      DC,Q	     Back score
  1317 1DD2 40		     LR      A,MAT
  1318 1DD3 17		     ST
  1319 1DD4 46		     LR      A,POT
  1320 1DD5 17		     ST
  1321 1DD6 41		     LR      A,1	     Should the board be saved?
  1322 1DD7 25 02	     CI      H'2'
  1323 1DD9 94 0F	     BNZ     AF1B	     No, back 1 level in HL
  1324 1DDB 10		     LR      DC,H	     Yes
  1325 1DDC 2C		     XDC
  1326 1DDD 2A 0E 10	     DCI     TREE
  1327 1DE0 28 1A 34	     PI      RARA	     RAM to TAM transfer
  1328 1DE3 90 05	     BR      AF1B	     and back 1 level
  1329		     * Final backing up
  1330 1DE5 7E	     AF2B    LIS     H'E'	     Back 2 levels
  1331 1DE6 15		     SL      4		     Fast H'E0'
  1332 1DE7 90 06	     BR      AFBB
  1333 1DE9 47	     AF1B    LR      A,7	     Reverse sides and back 1 level
  1334 1DEA 18		     COM
  1335 1DEB 57		     LR      7,A
  1336 1DEC 7F		     LIS     H'F'	     Back 1 level
  1337 1DED 15		     SL      4		     Fast H'F0'
  1338 1DEE CB	     AFBB    AS      HL
  1339 1DEF 5B		     LR      HL,A
  1340 1DF0 10	     ABBB    LR      DC,H
  1341 1DF1 28 1A 07	     PI      RASC
  1342 1DF4 2A 0C 2F	     DCI     CFLG
  1343 1DF7 70		     CLR
  1344 1DF8 17		     ST			     Clear compacting flag
  1345 1DF9 29 17 90	     JMP     SELE
  1346		     * Subroutine to back by 2's to non-passed board
  1347 1DFC 08	     AFBX    LR      K,P
  1348 1DFD 20 FF	     LI      -H'1'
  1349 1DFF 8E		     ADC		     To ACTM  location
  1350 1E00 0E		     LR      Q,DC
  1351 1E01 0F	     AFB2    LR      DC,Q
  1352 1E02 71		     LIS     H'1'
  1353 1E03 18		     COM
  1354 1E04 15		     SL      4		     Back by H'20'
  1355 1E05 8E		     ADC
  1356 1E06 0E		     LR      Q,DC
  1357 1E07 70		     CLR
  1358 1E08 8C		     XM
  1359 1E09 91 F7	     BM      AFB2	     Go around again
  1360 1E0B 03		     LR      A,QL
  1361 1E0C 14		     SR      4
  1362 1E0D 51		     LR      1,A	     Save to get new HL value
  1363 1E0E 24 FE	     AI      -H'2'
  1364 1E10 13		     SL      1		     2 bytes per entry, remember
  1365 1E11 2A 0E F0	     DCI     SCOR
  1366 1E14 8E		     ADC
  1367 1E15 0E		     LR      Q,DC	     Q points back 2 from first passed
  1368 1E16 0C		     PK
  1369		     * EVAL
  1370		     * HLS used temporarily in multiply routine
  1371 1E17 64	     EVAL    LISU    4		       Compute the material advantage t
  1372 1E18 6E		     LISL    6		       Get to ACTM
  1373 1E19 4D		     LR      A,I
  1374 1E1A 50		     LR      MAT,A	       ACTM
  1375 1E1B 4D		     LR      A,I
  1376 1E1C 54		     LR      HLS,A	       PASM
  1377 1E1D 18		     COM
  1378 1E1E 1F		     INC
  1379 1E1F C0		     AS      MAT
  1380 1E20 53		     LR      3,A	     ACTM-PASM
  1381 1E21 81 03	     BP      EVA0
  1382 1E23 18		     COM
  1383 1E24 1F		     INC
  1384 1E25 51	     EVA0    LR      1,A	     |A-P|
  1385 1E26 40		     LR      A,MAT
  1386 1E27 C4		     AS      HLS	     A+P
  1387 1E28 18		     COM
  1388 1E29 1F		     INC		     -(A+P)
  1389 1E2A 2A 0C 2C	     DCI     AP20
  1390 1E2D 88		     AM			     Add initial value +6
  1391 1E2E 12		     SR      1		     and divide by 2
  1392 1E2F 54		     LR      HLS,A	     Save temporarily, multiply by
  1393 1E30 70		     CLR		     by smaller pos. # in 1
  1394 1E31 50		     LR      MAT,A	       Product into MAT
  1395 1E32 41		     LR      A,1
  1396 1E33 21 01    EVA1    NI      H'1'	     Is the rightmost bit a 1?
  1397 1E35 84 04	     BZ      EVA2	     No
  1398 1E37 44		     LR      A,HLS
  1399 1E38 C0		     AS      MAT
  1400 1E39 50		     LR      MAT,A
  1401 1E3A 44	     EVA2    LR      A,HLS
  1402 1E3B 13		     SL      1
  1403 1E3C 54		     LR      HLS,A
  1404 1E3D 41		     LR      A,1
  1405 1E3E 12		     SR      1
  1406 1E3F 51		     LR      1,A
  1407 1E40 94 F2	     BNZ     EVA1	     Product is not complete
  1408 1E42 40		     LR      A,MAT
  1409 1E43 25 33	     CI      H'33'	     Maximum of 51
  1410 1E45 81 04	     BP      EV21
  1411 1E47 20 33	     LI      H'33'	     Limit range to avoid CM trouuble
  1412 1E49 50		     LR      MAT,A
  1413 1E4A 70	     EV21    CLR
  1414 1E4B E3		     XS      3		     To get sign
  1415 1E4C 40		     LR      A,MAT
  1416 1E4D 81 74	     BP      EVA3
  1417 1E4F 18		     COM
  1418 1E50 1F		     INC
  1419 1E51 50		     LR      MAT,A	       Material advantage with sign
  1420		     * Compute guard row credit
  1421 1E52 63		     LISU    PLOC
  1422 1E53 70		     CLR
  1423 1E54 53		     LR      3,A
  1424 1E55 E7		     XS      7
  1425 1E56 84 1C	     BZ      EVG2	     Black is active
  1426 1E58 6C		     LISL    4		     Passive's (black's) guard byte
  1427 1E59 7A		     LIS     H'A'
  1428 1E5A 15		     SL      4		     Passive's guard bits
  1429 1E5B FC		     NS      S		     Are pieces there?
  1430 1E5C 51		     LR      1,A
  1431 1E5D 24 FF	     AI      H'FF'
  1432 1E5F F1		     NS      1		     Both of them?
  1433 1E60 84 04	     BZ      EVG1	     No
  1434 1E62 70		     CLR
  1435 1E63 18		     COM		     Debit
  1436 1E64 53		     LR      3,A
  1437 1E65 6B	     EVG1    LISL    3		     Active's (red's) guard byte
  1438 1E66 75		     LIS     H'5'	     Active's guard bits
  1439 1E67 FC		     NS      S		     Are pieces there?
  1440 1E68 51		     LR      1,A
  1441 1E69 24 FF	     AI      H'FF'
  1442 1E6B F1		     NS      1		     Both of them?
  1443 1E6C 84 1F	     BZ      EVG4	     No
  1444 1E6E 43		     LR      A,3
  1445 1E6F 1F		     INC
  1446 1E70 53		     LR      3,A	     Credit
  1447 1E71 90 1A	     BR      EVG4
  1448 1E73 6F	     EVG2    LISL    7		     Passive's (red's) guard byte
  1449 1E74 75		     LIS     H'5'
  1450 1E75 FC		     NS      S		     Are pieces there?
  1451 1E76 51		     LR      1,A
  1452 1E77 24 FF	     AI      H'FF'
  1453 1E79 F1		     NS      1		     Both of them?
  1454 1E7A 84 04	     BZ      EVG3	     No
  1455 1E7C 70		     CLR
  1456 1E7D 18		     COM		     Debit
  1457 1E7E 53		     LR      3,A
  1458 1E7F 68	     EVG3    LISL    0		     Active's (black's) guard byte
  1459 1E80 7A		     LIS     H'A'
  1460 1E81 14		     SR      4		     Active's guard bits
  1461 1E82 FC		     NS      S		     Are pieces there?
  1462 1E83 51		     LR      1,A
  1463 1E84 24 FF	     AI      H'FF'
  1464 1E86 F1		     NS      1		     Both of them?
  1465 1E87 84 04	     BZ      EVG4	     No
  1466 1E89 43		     LR      A,3
  1467 1E8A 1F		     INC		     Credit
  1468 1E8B 53		     LR      3,A
  1469 1E8C 43	     EVG4    LR      A,3
  1470 1E8D 13		     SL      1		     Credit of 2, 0 or -2
  1471 1E8E C0		     AS      MAT	     Add to MAT
  1472 1E8F 50		     LR      MAT,A
  1473		     * Center credit
  1474 1E90 70		     CLR
  1475 1E91 53		     LR      3,A
  1476 1E92 6D		     LISL    5		     Start with passive
  1477 1E93 20 66    EVD0    LI      H'66'	     These squares
  1478 1E95 FD		     NS      I		     Are they occupied?
  1479 1E96 84 0E	     BZ      EVD2	     No
  1480 1E98 51	     EVD1    LR      1,A	     Count them
  1481 1E99 33		     DS      3
  1482 1E9A 70		     CLR
  1483 1E9B 18		     COM
 **OPERATOR SYNTAX    LINE #  1484
  1484
  1485 1E9C C1		     AS      1
  1486 1E9D F1		     NS      1
  1487 1E9E 94 F9	     BNZ     EVD1
  1488 1EA0 0A		     LR      A,IS
  1489 1EA1 21 01	     NI      H'1'	     Can we consider next byte?
  1490 1EA3 84 EF	     BZ      EVD0	     Yes
  1491 1EA5 43	     EVD2    LR      A,3
  1492 1EA6 C0		     AS      MAT	     Debit for passive occupancy
  1493 1EA7 50		     LR      MAT,A
  1494 1EA8 70		     CLR
  1495 1EA9 53		     LR      3,A
  1496 1EAA 69		     LISL    1		     Now for active's bytes
  1497 1EAB 20 66    EVD3    LI      H'66'	     These squares
  1498 1EAD FD		     NS      I		     Are they occupied?
  1499 1EAE 84 09	     BZ      EVD6	     No
  1500 1EB0 51	     EVD5    LR      1,A	     Count them
  1501 1EB1 33		     DS      3
  1502 1EB2 70		     CLR
  1503 1EB3 18		     COM
  1504 1EB4 C1		     AS      1
  1505 1EB5 F1		     NS      1
  1506 1EB6 94 F9	     BNZ     EVD5
  1507 1EB8 0A	     EVD6    LR      A,IS
  1508 1EB9 21 01	     NI      H'1'	     Can we consider the next byte?
  1509 1EBB 84 EF	     BZ      EVD3	     Yes
  1510 1EBD 43	     EVD8    LR      A,3
  1511 1EBE 18		     COM
  1512 1EBF 1F		     INC		     Credit for active occupancy
  1513 1EC0 C0		     AS      MAT
  1514 1EC1 50		     LR      MAT,A
  1515		     * Now the second SCOR term
  1516 1EC2 4B	     EVA3    LR      A,HL
  1517 1EC3 14		     SR      4
  1518 1EC4 24 FE	     AI      -H'2'
  1519 1EC6 55		     LR      5,A	     Save PLY
  1520 1EC7 2A 0F B0	     DCI     MOBS	     Compute mobility term
  1521 1ECA 24 FF	     AI      -H'1'
  1522 1ECC 8E		     ADC
  1523 1ECD 16		     LM			     Get earlier mobility
  1524 1ECE 18		     COM
  1525 1ECF 1F		     INC
  1526 1ED0 C2		     AS      2		     Add current mobility
  1527 1ED1 25 0C	     CI      H'C'	     Difference limited to |12|
  1528 1ED3 81 02	     BP      EVA4
  1529 1ED5 7C		     LIS     H'C'
  1530 1ED6 25 F4    EVA4    CI      -H'C'
  1531 1ED8 91 03	     BM      EVA5
  1532 1EDA 20 F4	     LI      -H'C'
  1533 1EDC 13	     EVA5    SL      1		     Make room for ply term
  1534 1EDD 13		     SL      1		     Would like to shift more
  1535 1EDE 56		     LR      POT,A	     Save difference (and free 2)
  1536 1EDF 70		     CLR
  1537 1EE0 C0		     AS      MAT
  1538 1EE1 94 03	     BNZ     EVA6
  1539 1EE3 70		     CLR
  1540 1EE4 C6		     AS      POT
  1541 1EE5 45	     EVA6    LR      A,5	     Get ply value
  1542 1EE6 91 07	     BM      EVA7	     Test sign of significant term
  1543 1EE8 18		     COM		     If pos. we add H'C'-PLY
  1544 1EE9 1F		     INC
  1545 1EEA 24 0C	     AI      H'C'
  1546 1EEC 90 03	     BR      EVA8
  1547 1EEE 24 F4    EVA7    AI      -H'C'	     If neg. we add PLY-H'C'
  1548 1EF0 C6	     EVA8    AS      POT	     Add it in
  1549 1EF1 56		     LR      POT,A	     Positional term with PLY
  1550 1EF2 4B	     EVA9    LR      A,HL
  1551 1EF3 14		     SR      4
  1552 1EF4 24 FE	     AI      -H'2'
  1553 1EF6 13		     SL      1
  1554 1EF7 2A 0E F0	     DCI     SCOR
  1555 1EFA 8E		     ADC
  1556 1EFB 0E		     LR      Q,DC
  1557 1EFC 29 1D 59	     JMP     AFTE	     AFT routine handles from here on
  1558		     * EMPT WAST BRAK STOP
  1559 1EFF 08	     EMPT    LR      K,P	     Empty squares in O'51' thru O'54'
  1560 1F00 65		     LISU    ELOC	     with guard bytes in 50 and 55
  1561 1F01 68		     LISL    0
  1562 1F02 70		     CLR
  1563 1F03 5C		     LR      S,A	     Make sure guard byte is empty
  1564 1F04 63		     LISU    PLOC	     Start with ACTIVE
  1565 1F05 74		     LIS     H'4'
  1566 1F06 50		     LR      0,A
  1567 1F07 90 05	     BR      EMP3
  1568 1F09 0A	     EMP2    LR      A,IS
  1569 1F0A 24 30	     AI      H'30'	     Actually subtracting 16
  1570 1F0C 0B		     LR      IS,A
  1571 1F0D 4C	     EMP3    LR      A,S
  1572 1F0E 51		     LR      1,A
  1573 1F0F 0A		     LR      A,IS
  1574 1F10 24 04	     AI      4
  1575 1F12 0B		     LR      IS,A
  1576 1F13 4C		     LR      A,S
  1577 1F14 C1		     AS      1
  1578 1F15 51		     LR      1,A
  1579 1F16 0A		     LR      A,IS
  1580 1F17 24 0D	     AI      H'D'	     Add 13 get to the correct EMPTY lo
  1581 1F19 0B		     LR      IS,A
  1582 1F1A 41		     LR      A,1
  1583 1F1B 18		     COM		     Reverse 1's and 0's
  1584 1F1C 5C		     LR      S,A
  1585 1F1D 30		     DS      0
  1586 1F1E 94 EA	     BNZ     EMP2
  1587 1F20 4D		     LR      A,I	     To index only
  1588 1F21 70		     CLR
  1589 1F22 5C		     LR      S,A	     Upper guard byte
  1590 1F23 0C		     PK
  1591		     *-*-*-*-*-*-*-*-*-*
  1592		     *First replies (maximum of 4 each)
  1593 1F24 33	     BOK2    DC      H'33'   24,20  24-20    To 12-16
  1594 1F25 33		     DC      H'33'   24-20, 24-20
  1595 1F26 43		     DC      H'43'   23-19, 24-20    To 11-15
  1596 1F27 20		     DC      H'20'   22-17, 24-19
  1597 1F28 22		     DC      H'22'   22-17, 22-17    To 10-14
  1598 1F29 22		     DC      H'22'   22-17, 22-17
  1599 1F2A 55		     DC      H'55'   22-18, 22-18    To  9-13
  1600 1F2B 55		     DC      H'55'   22-18, 22-18
  1601 1F2C 31		     DC      H'31'   24-20, 23-18    To 11-16
  1602 1F2D 45		     DC      H'45'   24-19, 22-18
  1603 1F2E 66		     DC      H'66'   21-17, 21-17    To 10-15
  1604 1F2F 66		     DC      H'66'   21-17, 21-17
  1605 1F30 55		     DC      H'55'   22-18, 22-18    To  9-14
  1606 1F31 55		     DC      H'55'   22-18, 22-18
  1607		     *-*-*-
  1608 1F32 08	     WAST    LR      K,P	Delay loop to WASTE some time
  1609 1F33 7F	     WAS2    LIS     H'F'
  1610 1F34 51		     LR      1,A
  1611 1F35 70	     WAS3    CLR
  1612 1F36 52		     LR      2,A
  1613 1F37 32	     WAS4    DS      2
  1614 1F38 94 FE	     BNZ     WAS4
  1615 1F3A 31		     DS      1
  1616 1F3B 94 F9	     BNZ     WAS3
  1617 1F3D 0C		     PK
  1618		     *
  1619 1F3E 4B	     BRAK    LR      A,HL
  1620 1F3F 14		     SR      4
  1621 1F40 2A 0C 2B	     DCI     H'0C2B'
  1622 1F43 8D		     CM
  1623 1F44 84 04	     BZ      BRA2
  1624 1F46 29 17 90	     JMP     SELE
  1625 1F49 2B	     BRA2    NOP
  1626 1F4A 2B		     NOP
  1627 1F4B 2B		     NOP
  1628 1F4C 2B		     NOP
  1629 1F4D 2A 0E F0 STOP    DCI     SCOR	     What kind of score?
  1630 1F50 16		     LM
  1631 1F51 25 3F	     CI      H'3F'	     Does the machine have a win?
  1632 1F53 94 08	     BNZ     STO1	     No
  1633 1F55 16		     LM			     Yes, at what ply?
  1634 1F56 18		     COM
  1635 1F57 1F		     INC
  1636 1F58 54		     LR      4,A
  1637 1F59 77		     LIS     H'7'	     "I can win in "
  1638 1F5A 90 08	     BR      STO2
  1639 1F5C 25 C1    STO1    CI      H'C1'	     Does player have a win?
  1640 1F5E 94 2C	     BNZ     STO4	     No
  1641 1F60 16		     LM			     Yes, at what ply?
  1642 1F61 54		     LR      4,A
  1643 1F62 78		     LIS     H'8'	     "You can win in "
  1644 1F63 50	     STO2    LR      0,A
  1645 1F64 28 12 49	     PI      WMC	     Write message
  1646 1F67 28 16 6B	     PI      DAI	     Disable interruupts
  1647 1F6A 28 16 23	     PI      MWAD	     Wait then update
  1648 1F6D 44		     LR      A,4
  1649 1F6E 24 3F	     AI      H'3F'
  1650 1F70 54		     LR      4,A
  1651 1F71 58		     LR      TEMP,A
  1652 1F72 28 41 05	     PI      WDG	     Report ply
  1653 1F75 28 16 23	     PI      MWAD	     Wait then update
  1654 1F78 28 16 4E	     PI      ENIN	     Enable interrupts
  1655 1F7B 70		     CLR
  1656 1F7C 53		     LR      3,A
  1657 1F7D 28 1F 32 STO3    PI      WAST	     Leave message up awhile
  1658 1F80 33		     DS      3
  1659 1F81 94 FB	     BNZ     STO3
  1660 1F83 44		     LR      A,4
  1661 1F84 25 02	     CI      H'2'	     Early warning only?
  1662 1F86 91 04	     BM      STO4	     Yes
  1663 1F88 29 40 00	     JMP     H'4000'	     Stop
  1664 1F8B 29 1D 3E STO4    JMP     AFTT	     Continue play
  1665 1F8E 00		     DC      0
  1666 1F8F 00		     DC      0
  1667 1F90 00		     DC      0
  1668 1F91 00		     DC      0
	      END
 NUMBER OF ERRORS=  2
1
 J     =0009 VY    =0004 VX    =0003 HU    =000A HL    =000B Y	   =0002
 X     =0001 ISA   =0018 MWAD  =1623 BRAK   1F3E EVAL	1E17 HSAL  =0C27
 TRAN  =43CD UDAT  =424D HSAV  =0C26 EVA0   1E25 EVA1	1E33 EVA2   1E3A
 BRA2	1F49 EVA3   1EC2 EVA4	1ED6 EVA5   1EDC EVA6	1EE5 EVA7   1EEE
 EVA8	1EF0 EVA9   1EF2 AFBB	1DEE ABBB   1DF0 MOBS  =0FB0 AFBX   1DFC
 AFB2	1E01 WMC   =1249 TXC   =0FE8 SHCB  =0FE2 REDM	1A02 EVD0   1E93
 EVD1	1E98 EVD2   1EA5 EVD3	1EAB EVD5   1EB0 EVD6	1EB8 EVD8   1EBD
 ISE   =0029 TREE  =0E10 CLER  =4762 ISE0  =0028 TRE2  =0E20 TRE3  =0E3E
 TRE5  =0E50 WDG   =4105 EVG1	1E65 EVG2   1E73 EVG3	1E7F EVG4   1E8C
 DAI   =166B UPI   =0FFA ENIN  =164E ULIN  =00F5 WAIT  =4501 LFJ    1B3B
 LBJ	1B9C RBJ    1B6F RFJ	1B0E OBJ0  =0C30 NEJ0	1AEE RBJ0   1B68
 OBJ1  =0F10 LFJ2   1B66 LBJ2	1BC7 RBJ2   1B9A ISK   =0020 BOK2   1F24
 SHL   =27C6 YOLD  =0C2E XOLD  =0C2D DELE   17B6 SELE	1790 CFLG  =0C2F
 BFLG  =0C20 INLH   17CC WTLN  =0FE5 YBLN  =0C23 XBLN  =0C22 SELX  =0C2A
 COL0  =0C29 DEL2   17C6 INL2	17D4 SEL2   1796 INL3	17D9 SEL3   17A3
 SEL4	17AC COM   =08F7 JUMA	181A JUMB   181B JUMC	1835 PLMD  =0E5B
 BCMD  =006D TCMD  =0044 PLMF  =0EE0 DJMP  =1229 JUMP	17F1 TEMP  =0008
 PLMV  =0ED0 BKMV  =0C25 STMV	1A55 STM0   1A5F JUM1	1806 STM1   1A66
 JUM2	1827 STM2   1A83 JUM3	1828 STM3   1A74 JUM4	1842 NOM4   18D1
 STM4	1A7B JUM5   1847 NOM5	18D6 STM5   1A86 JUM6	184E NOM6   18DB
 JUM7	185D JUM9   1861 LFN	1C84 LBN    1CD4 RBN	1CB1 RFN    1C5E
 DBNC  =0FEB FIND   1AF1 LINE  =0FDF BLNF  =0C21 BCNT  =0C24 NEN0   1AE4
 RBN0	1CAA FIN1   1B02 ELOC  =0005 KLOC  =0004 PLOC  =0003 TCOL  =0080
 STOP	1F4D XZOP  =0034 SCOR  =0EF0 YPOS  =0F0F XPOS  =0F0C PMOV  =1116
 SHOW  =1707 STO1   1F5C STO2	1F63 STO3   1F7D STO4	1F8B ISP   =001C
 INPF  =0FE3 POPS  =40BC EMPT	1EFF AFP1   1D85 EMP2	1F09 AFP2   1DA0
 EMP3	1F0D TIR   =45DB SHR   =27D3 SCRA   1A18 RARA	1A34 BORD  =132B
 SCRD  =167D FORE   18E9 NORF	1CF7 CMRG  =0FEA INRH	17DB NORM   18B9
 NORT	1CFA FORY   1963 NOR0	1D04 NOR1   1D08 SCR1	1A1D INR2   17E5
 NOR2	1D14 SCR2   1A26 FOR2	1918 RAR2   1A38 NOR3	1D24 FOR3   1971
 NOR4	1D32 FOR4   1974 NOR5	1D27 FOR5   1991 FOR6	19C1 FOR7   1932
 FOR8	18FB WMS   =4205 CDS   =41D5 IJS   =22DB HLS   =0004 SPS   =40D0
 FCS   =43D6 RASC   1A07 PUSH  =40A9 PASM  =0027 WAST	1F32 YTST  =0009
 RGSV  =0FC1 WAS2   1F33 RAS2	1A0A WAS3   1F35 RAS3	1A11 WAS4   1F37
 POT   =0006 CHT   =0003 BKT	1A48 AFT    1D35 MAT   =0000 FKT    1A40
 AFTE	1D59 BOTH   17EA ACTM  =0026 AFTT   1D3E AFT0	1D4D AFT1   1D67
 FKT2	1A45 WAUD  =41C8 WAU1  =41CC BMV2   19DD NEXA	1ACA NEXJ   1AE7
 NEXT	1A93 NEXX   1ABA NEXY	1AC7 MAXY  =004D PLYD  =00E1 PLYH  =00D9
 JOYI  =21AD JOYT  =0C00 PLYT  =00E9 PLY0  =0C28 FJ1	1BCA FK1    1A4D
 AF1B	1DE9 FJ10   1C31 JU11	1808 FJ11   1C41 JU12	180F AP12   1D98
 FJ12	1C55 AP13   1D9D BM17	19E3 BM18   19E5 BM19	19EC FJ2    1BD3
 AF2B	1DE5 AP2X   1DC0 AP2Y	1DA8 AP20  =0C2C EV21	1E4A AP21   1DB2
 AP22	1DB8 AP23   1DD1 FJ3	1BD8 FJ4    1BE2 FJ5	1BF6 FJ6    1BFF
 FJ7	1C07 JU71   1864 JU77	18AA JU78   1879 FJ9	1C26